#include<stdio.h>
#include<assert.h>
#include<errno.h>
#include<stdlib.h>

typedef int SLDataType;

typedef struct SListNode
{
	SLDataType data;
	struct SListNode* next;
}SLNode;

void SLPrint(SLNode* phead);
SLNode* SLBuyNode(SLDataType x);
void SLPushBack(SLNode** pphead, SLDataType x);
void SLPushFront(SLNode** pphead, SLDataType x);
void SLPopBack(SLNode** pphead);
void SLPopFront(SLNode** pphead);
SLNode* SLFind(SLNode** pphead, SLDataType x);
void SLInsert(SLNode** pphead, SLNode* pos, SLDataType x);
void SLErase(SLNode** pphead, SLNode* pos);
void SLInsertAfter( SLNode* pos, SLDataType x);
void SLEraseAfter(SLNode* pos);
void SLDestroy(SLNode** pphead);